{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 人脸识别与计算机视觉文档实践\n",
    "\n",
    ">* 本周主要内容：人脸（Face） API文档不同平台对比与实践及计算机视觉入门（认知服务）\n",
    ">* 202009_API_人工智能与机器学习_week03\n",
    ">*  电子讲义设计者：许智超\n",
    "<br/>\n",
    "<br/>\n",
    "\n",
    "## 复习\n",
    "\n",
    "* 上周主要内容： \n",
    ">    * 1、API文档\n",
    ">    * 2、认知服务-人脸识别\n",
    ">    * 3、pandas黑魔法（json_normalize）\n",
    "-----\n",
    "* 提问、检查与扩展：\n",
    ">    * 1、上周的Azure face API随机检查2位同学，对于API文档是否有能力详细阅读？\n",
    ">    * 2、抽查2位同学，对于获取的数据用途有何思考？是否尝试其他平台（XXX API、XXX API）      \n",
    ">    * 3、扩展: 我们尝试抽取了4张图片，包含AB、ABC、BCD、ABCD四个人物特征，如何通过API检查数据差异？\n",
    "  \n",
    "\n",
    "-----\n",
    "## 本周学习目标：\n",
    "\n",
    "> $\\mathcal{1、Azure 认知服务-人脸集合演示}$     \n",
    "> $\\mathcal{2、Face++ 之 FaceSets 实践}$     \n",
    "> $\\mathcal{3、计算机视觉实践}$    \n",
    "\n",
    "\n",
    "\n",
    "## 学生权限\n",
    "\n",
    "* [访问学生权益](https://azure.microsoft.com/zh-cn/education/)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>\n",
       "/* 本电子讲义使用之CSS */\n",
       "div.code_cell {\n",
       "    background-color: #e5f1fe;\n",
       "}\n",
       "div.cell.selected {\n",
       "    background-color: #effee2;\n",
       "    font-size: 2rem;\n",
       "    line-height: 2.4rem;\n",
       "}\n",
       "div.cell.selected .rendered_html table {\n",
       "    font-size: 2rem !important;\n",
       "    line-height: 2.4rem !important;\n",
       "}\n",
       ".rendered_html pre code {\n",
       "    background-color: #C4E4ff;   \n",
       "    padding: 2px 25px;\n",
       "}\n",
       ".rendered_html pre {\n",
       "    background-color: #99c9ff;\n",
       "}\n",
       "div.code_cell .CodeMirror {\n",
       "    font-size: 2rem !important;\n",
       "    line-height: 2.4rem !important;\n",
       "}\n",
       ".rendered_html img, .rendered_html svg {\n",
       "    max-width: 50%;\n",
       "    height: auto;\n",
       "    float: center;\n",
       "}\n",
       "/* Gradient transparent - color - transparent */\n",
       "hr {\n",
       "    border: 0;\n",
       "    border-bottom: 1px dashed #ccc;\n",
       "}\n",
       ".emoticon{\n",
       "    font-size: 5rem;\n",
       "    line-height: 4.4rem;\n",
       "    text-align: center;\n",
       "    vertical-align: middle;\n",
       "}\n",
       "\n",
       "</style>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%html\n",
    "<style>\n",
    "/* 本电子讲义使用之CSS */\n",
    "div.code_cell {\n",
    "    background-color: #e5f1fe;\n",
    "}\n",
    "div.cell.selected {\n",
    "    background-color: #effee2;\n",
    "    font-size: 2rem;\n",
    "    line-height: 2.4rem;\n",
    "}\n",
    "div.cell.selected .rendered_html table {\n",
    "    font-size: 2rem !important;\n",
    "    line-height: 2.4rem !important;\n",
    "}\n",
    ".rendered_html pre code {\n",
    "    background-color: #C4E4ff;   \n",
    "    padding: 2px 25px;\n",
    "}\n",
    ".rendered_html pre {\n",
    "    background-color: #99c9ff;\n",
    "}\n",
    "div.code_cell .CodeMirror {\n",
    "    font-size: 2rem !important;\n",
    "    line-height: 2.4rem !important;\n",
    "}\n",
    ".rendered_html img, .rendered_html svg {\n",
    "    max-width: 50%;\n",
    "    height: auto;\n",
    "    float: center;\n",
    "}\n",
    "/* Gradient transparent - color - transparent */\n",
    "hr {\n",
    "    border: 0;\n",
    "    border-bottom: 1px dashed #ccc;\n",
    "}\n",
    ".emoticon{\n",
    "    font-size: 5rem;\n",
    "    line-height: 4.4rem;\n",
    "    text-align: center;\n",
    "    vertical-align: middle;\n",
    "}\n",
    "\n",
    "</style>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 复习\n",
    "\n",
    "> 1、回顾阅读API文档的关键点     \n",
    "> 2、正确阅读json数据 [jsonviewer.stack.hu(json转换检查数据)](http://jsonviewer.stack.hu)    \n",
    "> 3、pandas 中的json_normalize模块/函数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A-1 面部检测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'[{\"faceId\": \"1f2bf379-70dd-41be-86c3-a63f2deb7c7f\", \"faceRectangle\": {\"top\": 118, \"left\": 144, \"width\": 88, \"height\": 88}, \"faceAttributes\": {\"smile\": 0.813, \"headPose\": {\"pitch\": -3.4, \"roll\": 1.4, \"yaw\": 9.4}, \"gender\": \"male\", \"age\": 19.0, \"facialHair\": {\"moustache\": 0.1, \"beard\": 0.1, \"sideburns\": 0.1}, \"glasses\": \"NoGlasses\", \"emotion\": {\"anger\": 0.0, \"contempt\": 0.003, \"disgust\": 0.0, \"fear\": 0.0, \"happiness\": 0.813, \"neutral\": 0.184, \"sadness\": 0.0, \"surprise\": 0.0}, \"blur\": {\"blurLevel\": \"low\", \"value\": 0.21}, \"exposure\": {\"exposureLevel\": \"overExposure\", \"value\": 0.81}, \"noise\": {\"noiseLevel\": \"low\", \"value\": 0.01}, \"makeup\": {\"eyeMakeup\": false, \"lipMakeup\": false}, \"accessories\": [], \"occlusion\": {\"foreheadOccluded\": false, \"eyeOccluded\": false, \"mouthOccluded\": false}, \"hair\": {\"bald\": 0.18, \"invisible\": false, \"hairColor\": [{\"color\": \"brown\", \"confidence\": 0.95}, {\"color\": \"black\", \"confidence\": 0.93}, {\"color\": \"other\", \"confidence\": 0.23}, {\"color\": \"blond\", \"confidence\": 0.23}, {\"color\": \"gray\", \"confidence\": 0.21}, {\"color\": \"red\", \"confidence\": 0.15}, {\"color\": \"white\", \"confidence\": 0.0}]}}}, {\"faceId\": \"f659ea05-a658-497d-9b2a-eb89e74d5403\", \"faceRectangle\": {\"top\": 117, \"left\": 376, \"width\": 64, \"height\": 64}, \"faceAttributes\": {\"smile\": 0.456, \"headPose\": {\"pitch\": -1.1, \"roll\": -0.2, \"yaw\": 6.6}, \"gender\": \"female\", \"age\": 22.0, \"facialHair\": {\"moustache\": 0.0, \"beard\": 0.0, \"sideburns\": 0.0}, \"glasses\": \"NoGlasses\", \"emotion\": {\"anger\": 0.0, \"contempt\": 0.001, \"disgust\": 0.0, \"fear\": 0.0, \"happiness\": 0.456, \"neutral\": 0.542, \"sadness\": 0.001, \"surprise\": 0.0}, \"blur\": {\"blurLevel\": \"low\", \"value\": 0.16}, \"exposure\": {\"exposureLevel\": \"goodExposure\", \"value\": 0.58}, \"noise\": {\"noiseLevel\": \"low\", \"value\": 0.01}, \"makeup\": {\"eyeMakeup\": false, \"lipMakeup\": true}, \"accessories\": [], \"occlusion\": {\"foreheadOccluded\": false, \"eyeOccluded\": false, \"mouthOccluded\": false}, \"hair\": {\"bald\": 0.08, \"invisible\": false, \"hairColor\": [{\"color\": \"black\", \"confidence\": 1.0}, {\"color\": \"other\", \"confidence\": 0.63}, {\"color\": \"brown\", \"confidence\": 0.46}, {\"color\": \"gray\", \"confidence\": 0.39}, {\"color\": \"blond\", \"confidence\": 0.03}, {\"color\": \"red\", \"confidence\": 0.01}, {\"color\": \"white\", \"confidence\": 0.0}]}}}, {\"faceId\": \"5e17a0f5-0a18-4a83-821a-31dd3fd014cd\", \"faceRectangle\": {\"top\": 41, \"left\": 676, \"width\": 52, \"height\": 52}, \"faceAttributes\": {\"smile\": 1.0, \"headPose\": {\"pitch\": 3.0, \"roll\": -1.3, \"yaw\": -0.6}, \"gender\": \"male\", \"age\": 25.0, \"facialHair\": {\"moustache\": 0.1, \"beard\": 0.1, \"sideburns\": 0.1}, \"glasses\": \"ReadingGlasses\", \"emotion\": {\"anger\": 0.0, \"contempt\": 0.0, \"disgust\": 0.0, \"fear\": 0.0, \"happiness\": 1.0, \"neutral\": 0.0, \"sadness\": 0.0, \"surprise\": 0.0}, \"blur\": {\"blurLevel\": \"low\", \"value\": 0.0}, \"exposure\": {\"exposureLevel\": \"goodExposure\", \"value\": 0.66}, \"noise\": {\"noiseLevel\": \"low\", \"value\": 0.07}, \"makeup\": {\"eyeMakeup\": false, \"lipMakeup\": false}, \"accessories\": [{\"type\": \"glasses\", \"confidence\": 1.0}], \"occlusion\": {\"foreheadOccluded\": false, \"eyeOccluded\": false, \"mouthOccluded\": false}, \"hair\": {\"bald\": 0.06, \"invisible\": false, \"hairColor\": [{\"color\": \"black\", \"confidence\": 0.98}, {\"color\": \"brown\", \"confidence\": 0.96}, {\"color\": \"other\", \"confidence\": 0.22}, {\"color\": \"gray\", \"confidence\": 0.21}, {\"color\": \"red\", \"confidence\": 0.09}, {\"color\": \"blond\", \"confidence\": 0.08}, {\"color\": \"white\", \"confidence\": 0.0}]}}}, {\"faceId\": \"c9b6de20-4b5c-4a87-88ce-482b2049a45c\", \"faceRectangle\": {\"top\": 69, \"left\": 445, \"width\": 52, \"height\": 52}, \"faceAttributes\": {\"smile\": 1.0, \"headPose\": {\"pitch\": 0.2, \"roll\": 2.6, \"yaw\": 1.5}, \"gender\": \"female\", \"age\": 23.0, \"facialHair\": {\"moustache\": 0.0, \"beard\": 0.0, \"sideburns\": 0.0}, \"glasses\": \"NoGlasses\", \"emotion\": {\"anger\": 0.0, \"contempt\": 0.0, \"disgust\": 0.0, \"fear\": 0.0, \"happiness\": 1.0, \"neutral\": 0.0, \"sadness\": 0.0, \"surprise\": 0.0}, \"blur\": {\"blurLevel\": \"low\", \"value\": 0.0}, \"exposure\": {\"exposureLevel\": \"goodExposure\", \"value\": 0.56}, \"noise\": {\"noiseLevel\": \"medium\", \"value\": 0.33}, \"makeup\": {\"eyeMakeup\": false, \"lipMakeup\": false}, \"accessories\": [], \"occlusion\": {\"foreheadOccluded\": false, \"eyeOccluded\": false, \"mouthOccluded\": false}, \"hair\": {\"bald\": 0.11, \"invisible\": false, \"hairColor\": [{\"color\": \"black\", \"confidence\": 1.0}, {\"color\": \"brown\", \"confidence\": 0.81}, {\"color\": \"other\", \"confidence\": 0.41}, {\"color\": \"gray\", \"confidence\": 0.37}, {\"color\": \"blond\", \"confidence\": 0.03}, {\"color\": \"red\", \"confidence\": 0.02}, {\"color\": \"white\", \"confidence\": 0.0}]}}}, {\"faceId\": \"c29e7a06-72de-4b77-bc5d-5568145f10eb\", \"faceRectangle\": {\"top\": 95, \"left\": 238, \"width\": 51, \"height\": 51}, \"faceAttributes\": {\"smile\": 0.981, \"headPose\": {\"pitch\": 7.2, \"roll\": 1.2, \"yaw\": 2.6}, \"gender\": \"female\", \"age\": 18.0, \"facialHair\": {\"moustache\": 0.0, \"beard\": 0.0, \"sideburns\": 0.0}, \"glasses\": \"ReadingGlasses\", \"emotion\": {\"anger\": 0.0, \"contempt\": 0.0, \"disgust\": 0.0, \"fear\": 0.0, \"happiness\": 0.981, \"neutral\": 0.019, \"sadness\": 0.0, \"surprise\": 0.0}, \"blur\": {\"blurLevel\": \"low\", \"value\": 0.07}, \"exposure\": {\"exposureLevel\": \"goodExposure\", \"value\": 0.69}, \"noise\": {\"noiseLevel\": \"medium\", \"value\": 0.48}, \"makeup\": {\"eyeMakeup\": false, \"lipMakeup\": false}, \"accessories\": [{\"type\": \"glasses\", \"confidence\": 1.0}], \"occlusion\": {\"foreheadOccluded\": false, \"eyeOccluded\": false, \"mouthOccluded\": false}, \"hair\": {\"bald\": 0.11, \"invisible\": false, \"hairColor\": [{\"color\": \"black\", \"confidence\": 0.98}, {\"color\": \"brown\", \"confidence\": 0.86}, {\"color\": \"other\", \"confidence\": 0.4}, {\"color\": \"gray\", \"confidence\": 0.36}, {\"color\": \"blond\", \"confidence\": 0.09}, {\"color\": \"red\", \"confidence\": 0.08}, {\"color\": \"white\", \"confidence\": 0.0}]}}}, {\"faceId\": \"0192c19c-eb0a-447b-82f1-740f32eb004a\", \"faceRectangle\": {\"top\": 94, \"left\": 540, \"width\": 48, \"height\": 48}, \"faceAttributes\": {\"smile\": 1.0, \"headPose\": {\"pitch\": -7.7, \"roll\": 5.0, \"yaw\": 6.9}, \"gender\": \"female\", \"age\": 19.0, \"facialHair\": {\"moustache\": 0.0, \"beard\": 0.0, \"sideburns\": 0.0}, \"glasses\": \"NoGlasses\", \"emotion\": {\"anger\": 0.0, \"contempt\": 0.0, \"disgust\": 0.0, \"fear\": 0.0, \"happiness\": 1.0, \"neutral\": 0.0, \"sadness\": 0.0, \"surprise\": 0.0}, \"blur\": {\"blurLevel\": \"low\", \"value\": 0.08}, \"exposure\": {\"exposureLevel\": \"goodExposure\", \"value\": 0.65}, \"noise\": {\"noiseLevel\": \"low\", \"value\": 0.08}, \"makeup\": {\"eyeMakeup\": false, \"lipMakeup\": false}, \"accessories\": [], \"occlusion\": {\"foreheadOccluded\": false, \"eyeOccluded\": false, \"mouthOccluded\": false}, \"hair\": {\"bald\": 0.1, \"invisible\": false, \"hairColor\": [{\"color\": \"black\", \"confidence\": 1.0}, {\"color\": \"brown\", \"confidence\": 0.88}, {\"color\": \"other\", \"confidence\": 0.35}, {\"color\": \"gray\", \"confidence\": 0.33}, {\"color\": \"blond\", \"confidence\": 0.05}, {\"color\": \"red\", \"confidence\": 0.04}, {\"color\": \"white\", \"confidence\": 0.0}]}}}]'"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# A-1 面部检测\n",
    "import requests\n",
    "import json\n",
    "\n",
    "# set to your own subscription key value\n",
    "subscription_key = \"f212f71663134b73bdec4a5a9aece2f0\"\n",
    "assert subscription_key\n",
    "\n",
    "# replace <My Endpoint String> with the string from your endpoint URL\n",
    "face_api_url = 'https://api-hjq.cognitiveservices.azure.com/face/v1.0/detect'\n",
    "\n",
    "# 请求正文body\n",
    "image_url = 'http://newmedia.nfu.edu.cn/wcy/wp-content/uploads/2018/04/post_20180424__NFU_DoraHacks_imoji%E5%9B%A2%E9%98%9F.jpg'\n",
    "\n",
    "headers = {'Ocp-Apim-Subscription-Key': subscription_key}\n",
    "\n",
    "# 请求参数parameters\n",
    "params = {\n",
    "    'returnFaceId': 'true',\n",
    "    'returnFaceLandmarks': 'false',\n",
    "    # 可选参数,请仔细阅读API文档\n",
    "    'returnFaceAttributes': 'age,gender,headPose,smile,facialHair,glasses,emotion,hair,makeup,occlusion,accessories,blur,exposure,noise',\n",
    "}\n",
    "\n",
    "response = requests.post(face_api_url, params=params,\n",
    "                         headers=headers, json={\"url\": image_url})\n",
    "# json.dumps 将json--->bytes\n",
    "json.dumps(response.json())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A-2 json转译\n",
    "\n",
    "> * bytes ---> json\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'faceId': '1f2bf379-70dd-41be-86c3-a63f2deb7c7f',\n",
       "  'faceRectangle': {'top': 118, 'left': 144, 'width': 88, 'height': 88},\n",
       "  'faceAttributes': {'smile': 0.813,\n",
       "   'headPose': {'pitch': -3.4, 'roll': 1.4, 'yaw': 9.4},\n",
       "   'gender': 'male',\n",
       "   'age': 19.0,\n",
       "   'facialHair': {'moustache': 0.1, 'beard': 0.1, 'sideburns': 0.1},\n",
       "   'glasses': 'NoGlasses',\n",
       "   'emotion': {'anger': 0.0,\n",
       "    'contempt': 0.003,\n",
       "    'disgust': 0.0,\n",
       "    'fear': 0.0,\n",
       "    'happiness': 0.813,\n",
       "    'neutral': 0.184,\n",
       "    'sadness': 0.0,\n",
       "    'surprise': 0.0},\n",
       "   'blur': {'blurLevel': 'low', 'value': 0.21},\n",
       "   'exposure': {'exposureLevel': 'overExposure', 'value': 0.81},\n",
       "   'noise': {'noiseLevel': 'low', 'value': 0.01},\n",
       "   'makeup': {'eyeMakeup': False, 'lipMakeup': False},\n",
       "   'accessories': [],\n",
       "   'occlusion': {'foreheadOccluded': False,\n",
       "    'eyeOccluded': False,\n",
       "    'mouthOccluded': False},\n",
       "   'hair': {'bald': 0.18,\n",
       "    'invisible': False,\n",
       "    'hairColor': [{'color': 'brown', 'confidence': 0.95},\n",
       "     {'color': 'black', 'confidence': 0.93},\n",
       "     {'color': 'other', 'confidence': 0.23},\n",
       "     {'color': 'blond', 'confidence': 0.23},\n",
       "     {'color': 'gray', 'confidence': 0.21},\n",
       "     {'color': 'red', 'confidence': 0.15},\n",
       "     {'color': 'white', 'confidence': 0.0}]}}},\n",
       " {'faceId': 'f659ea05-a658-497d-9b2a-eb89e74d5403',\n",
       "  'faceRectangle': {'top': 117, 'left': 376, 'width': 64, 'height': 64},\n",
       "  'faceAttributes': {'smile': 0.456,\n",
       "   'headPose': {'pitch': -1.1, 'roll': -0.2, 'yaw': 6.6},\n",
       "   'gender': 'female',\n",
       "   'age': 22.0,\n",
       "   'facialHair': {'moustache': 0.0, 'beard': 0.0, 'sideburns': 0.0},\n",
       "   'glasses': 'NoGlasses',\n",
       "   'emotion': {'anger': 0.0,\n",
       "    'contempt': 0.001,\n",
       "    'disgust': 0.0,\n",
       "    'fear': 0.0,\n",
       "    'happiness': 0.456,\n",
       "    'neutral': 0.542,\n",
       "    'sadness': 0.001,\n",
       "    'surprise': 0.0},\n",
       "   'blur': {'blurLevel': 'low', 'value': 0.16},\n",
       "   'exposure': {'exposureLevel': 'goodExposure', 'value': 0.58},\n",
       "   'noise': {'noiseLevel': 'low', 'value': 0.01},\n",
       "   'makeup': {'eyeMakeup': False, 'lipMakeup': True},\n",
       "   'accessories': [],\n",
       "   'occlusion': {'foreheadOccluded': False,\n",
       "    'eyeOccluded': False,\n",
       "    'mouthOccluded': False},\n",
       "   'hair': {'bald': 0.08,\n",
       "    'invisible': False,\n",
       "    'hairColor': [{'color': 'black', 'confidence': 1.0},\n",
       "     {'color': 'other', 'confidence': 0.63},\n",
       "     {'color': 'brown', 'confidence': 0.46},\n",
       "     {'color': 'gray', 'confidence': 0.39},\n",
       "     {'color': 'blond', 'confidence': 0.03},\n",
       "     {'color': 'red', 'confidence': 0.01},\n",
       "     {'color': 'white', 'confidence': 0.0}]}}},\n",
       " {'faceId': '5e17a0f5-0a18-4a83-821a-31dd3fd014cd',\n",
       "  'faceRectangle': {'top': 41, 'left': 676, 'width': 52, 'height': 52},\n",
       "  'faceAttributes': {'smile': 1.0,\n",
       "   'headPose': {'pitch': 3.0, 'roll': -1.3, 'yaw': -0.6},\n",
       "   'gender': 'male',\n",
       "   'age': 25.0,\n",
       "   'facialHair': {'moustache': 0.1, 'beard': 0.1, 'sideburns': 0.1},\n",
       "   'glasses': 'ReadingGlasses',\n",
       "   'emotion': {'anger': 0.0,\n",
       "    'contempt': 0.0,\n",
       "    'disgust': 0.0,\n",
       "    'fear': 0.0,\n",
       "    'happiness': 1.0,\n",
       "    'neutral': 0.0,\n",
       "    'sadness': 0.0,\n",
       "    'surprise': 0.0},\n",
       "   'blur': {'blurLevel': 'low', 'value': 0.0},\n",
       "   'exposure': {'exposureLevel': 'goodExposure', 'value': 0.66},\n",
       "   'noise': {'noiseLevel': 'low', 'value': 0.07},\n",
       "   'makeup': {'eyeMakeup': False, 'lipMakeup': False},\n",
       "   'accessories': [{'type': 'glasses', 'confidence': 1.0}],\n",
       "   'occlusion': {'foreheadOccluded': False,\n",
       "    'eyeOccluded': False,\n",
       "    'mouthOccluded': False},\n",
       "   'hair': {'bald': 0.06,\n",
       "    'invisible': False,\n",
       "    'hairColor': [{'color': 'black', 'confidence': 0.98},\n",
       "     {'color': 'brown', 'confidence': 0.96},\n",
       "     {'color': 'other', 'confidence': 0.22},\n",
       "     {'color': 'gray', 'confidence': 0.21},\n",
       "     {'color': 'red', 'confidence': 0.09},\n",
       "     {'color': 'blond', 'confidence': 0.08},\n",
       "     {'color': 'white', 'confidence': 0.0}]}}},\n",
       " {'faceId': 'c9b6de20-4b5c-4a87-88ce-482b2049a45c',\n",
       "  'faceRectangle': {'top': 69, 'left': 445, 'width': 52, 'height': 52},\n",
       "  'faceAttributes': {'smile': 1.0,\n",
       "   'headPose': {'pitch': 0.2, 'roll': 2.6, 'yaw': 1.5},\n",
       "   'gender': 'female',\n",
       "   'age': 23.0,\n",
       "   'facialHair': {'moustache': 0.0, 'beard': 0.0, 'sideburns': 0.0},\n",
       "   'glasses': 'NoGlasses',\n",
       "   'emotion': {'anger': 0.0,\n",
       "    'contempt': 0.0,\n",
       "    'disgust': 0.0,\n",
       "    'fear': 0.0,\n",
       "    'happiness': 1.0,\n",
       "    'neutral': 0.0,\n",
       "    'sadness': 0.0,\n",
       "    'surprise': 0.0},\n",
       "   'blur': {'blurLevel': 'low', 'value': 0.0},\n",
       "   'exposure': {'exposureLevel': 'goodExposure', 'value': 0.56},\n",
       "   'noise': {'noiseLevel': 'medium', 'value': 0.33},\n",
       "   'makeup': {'eyeMakeup': False, 'lipMakeup': False},\n",
       "   'accessories': [],\n",
       "   'occlusion': {'foreheadOccluded': False,\n",
       "    'eyeOccluded': False,\n",
       "    'mouthOccluded': False},\n",
       "   'hair': {'bald': 0.11,\n",
       "    'invisible': False,\n",
       "    'hairColor': [{'color': 'black', 'confidence': 1.0},\n",
       "     {'color': 'brown', 'confidence': 0.81},\n",
       "     {'color': 'other', 'confidence': 0.41},\n",
       "     {'color': 'gray', 'confidence': 0.37},\n",
       "     {'color': 'blond', 'confidence': 0.03},\n",
       "     {'color': 'red', 'confidence': 0.02},\n",
       "     {'color': 'white', 'confidence': 0.0}]}}},\n",
       " {'faceId': 'c29e7a06-72de-4b77-bc5d-5568145f10eb',\n",
       "  'faceRectangle': {'top': 95, 'left': 238, 'width': 51, 'height': 51},\n",
       "  'faceAttributes': {'smile': 0.981,\n",
       "   'headPose': {'pitch': 7.2, 'roll': 1.2, 'yaw': 2.6},\n",
       "   'gender': 'female',\n",
       "   'age': 18.0,\n",
       "   'facialHair': {'moustache': 0.0, 'beard': 0.0, 'sideburns': 0.0},\n",
       "   'glasses': 'ReadingGlasses',\n",
       "   'emotion': {'anger': 0.0,\n",
       "    'contempt': 0.0,\n",
       "    'disgust': 0.0,\n",
       "    'fear': 0.0,\n",
       "    'happiness': 0.981,\n",
       "    'neutral': 0.019,\n",
       "    'sadness': 0.0,\n",
       "    'surprise': 0.0},\n",
       "   'blur': {'blurLevel': 'low', 'value': 0.07},\n",
       "   'exposure': {'exposureLevel': 'goodExposure', 'value': 0.69},\n",
       "   'noise': {'noiseLevel': 'medium', 'value': 0.48},\n",
       "   'makeup': {'eyeMakeup': False, 'lipMakeup': False},\n",
       "   'accessories': [{'type': 'glasses', 'confidence': 1.0}],\n",
       "   'occlusion': {'foreheadOccluded': False,\n",
       "    'eyeOccluded': False,\n",
       "    'mouthOccluded': False},\n",
       "   'hair': {'bald': 0.11,\n",
       "    'invisible': False,\n",
       "    'hairColor': [{'color': 'black', 'confidence': 0.98},\n",
       "     {'color': 'brown', 'confidence': 0.86},\n",
       "     {'color': 'other', 'confidence': 0.4},\n",
       "     {'color': 'gray', 'confidence': 0.36},\n",
       "     {'color': 'blond', 'confidence': 0.09},\n",
       "     {'color': 'red', 'confidence': 0.08},\n",
       "     {'color': 'white', 'confidence': 0.0}]}}},\n",
       " {'faceId': '0192c19c-eb0a-447b-82f1-740f32eb004a',\n",
       "  'faceRectangle': {'top': 94, 'left': 540, 'width': 48, 'height': 48},\n",
       "  'faceAttributes': {'smile': 1.0,\n",
       "   'headPose': {'pitch': -7.7, 'roll': 5.0, 'yaw': 6.9},\n",
       "   'gender': 'female',\n",
       "   'age': 19.0,\n",
       "   'facialHair': {'moustache': 0.0, 'beard': 0.0, 'sideburns': 0.0},\n",
       "   'glasses': 'NoGlasses',\n",
       "   'emotion': {'anger': 0.0,\n",
       "    'contempt': 0.0,\n",
       "    'disgust': 0.0,\n",
       "    'fear': 0.0,\n",
       "    'happiness': 1.0,\n",
       "    'neutral': 0.0,\n",
       "    'sadness': 0.0,\n",
       "    'surprise': 0.0},\n",
       "   'blur': {'blurLevel': 'low', 'value': 0.08},\n",
       "   'exposure': {'exposureLevel': 'goodExposure', 'value': 0.65},\n",
       "   'noise': {'noiseLevel': 'low', 'value': 0.08},\n",
       "   'makeup': {'eyeMakeup': False, 'lipMakeup': False},\n",
       "   'accessories': [],\n",
       "   'occlusion': {'foreheadOccluded': False,\n",
       "    'eyeOccluded': False,\n",
       "    'mouthOccluded': False},\n",
       "   'hair': {'bald': 0.1,\n",
       "    'invisible': False,\n",
       "    'hairColor': [{'color': 'black', 'confidence': 1.0},\n",
       "     {'color': 'brown', 'confidence': 0.88},\n",
       "     {'color': 'other', 'confidence': 0.35},\n",
       "     {'color': 'gray', 'confidence': 0.33},\n",
       "     {'color': 'blond', 'confidence': 0.05},\n",
       "     {'color': 'red', 'confidence': 0.04},\n",
       "     {'color': 'white', 'confidence': 0.0}]}}}]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# A-2\n",
    "results = response.json()\n",
    "results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A-3 pandas 数据表格化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>faceId</th>\n",
       "      <th>faceRectangle.top</th>\n",
       "      <th>faceRectangle.left</th>\n",
       "      <th>faceRectangle.width</th>\n",
       "      <th>faceRectangle.height</th>\n",
       "      <th>faceAttributes.smile</th>\n",
       "      <th>faceAttributes.headPose.pitch</th>\n",
       "      <th>faceAttributes.headPose.roll</th>\n",
       "      <th>faceAttributes.headPose.yaw</th>\n",
       "      <th>faceAttributes.gender</th>\n",
       "      <th>...</th>\n",
       "      <th>faceAttributes.noise.value</th>\n",
       "      <th>faceAttributes.makeup.eyeMakeup</th>\n",
       "      <th>faceAttributes.makeup.lipMakeup</th>\n",
       "      <th>faceAttributes.accessories</th>\n",
       "      <th>faceAttributes.occlusion.foreheadOccluded</th>\n",
       "      <th>faceAttributes.occlusion.eyeOccluded</th>\n",
       "      <th>faceAttributes.occlusion.mouthOccluded</th>\n",
       "      <th>faceAttributes.hair.bald</th>\n",
       "      <th>faceAttributes.hair.invisible</th>\n",
       "      <th>faceAttributes.hair.hairColor</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1f2bf379-70dd-41be-86c3-a63f2deb7c7f</td>\n",
       "      <td>118</td>\n",
       "      <td>144</td>\n",
       "      <td>88</td>\n",
       "      <td>88</td>\n",
       "      <td>0.813</td>\n",
       "      <td>-3.4</td>\n",
       "      <td>1.4</td>\n",
       "      <td>9.4</td>\n",
       "      <td>male</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>[]</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0.18</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'color': 'brown', 'confidence': 0.95}, {'col...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>f659ea05-a658-497d-9b2a-eb89e74d5403</td>\n",
       "      <td>117</td>\n",
       "      <td>376</td>\n",
       "      <td>64</td>\n",
       "      <td>64</td>\n",
       "      <td>0.456</td>\n",
       "      <td>-1.1</td>\n",
       "      <td>-0.2</td>\n",
       "      <td>6.6</td>\n",
       "      <td>female</td>\n",
       "      <td>...</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>[]</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0.08</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'color': 'black', 'confidence': 1.0}, {'colo...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5e17a0f5-0a18-4a83-821a-31dd3fd014cd</td>\n",
       "      <td>41</td>\n",
       "      <td>676</td>\n",
       "      <td>52</td>\n",
       "      <td>52</td>\n",
       "      <td>1.000</td>\n",
       "      <td>3.0</td>\n",
       "      <td>-1.3</td>\n",
       "      <td>-0.6</td>\n",
       "      <td>male</td>\n",
       "      <td>...</td>\n",
       "      <td>0.07</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'type': 'glasses', 'confidence': 1.0}]</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0.06</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'color': 'black', 'confidence': 0.98}, {'col...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>c9b6de20-4b5c-4a87-88ce-482b2049a45c</td>\n",
       "      <td>69</td>\n",
       "      <td>445</td>\n",
       "      <td>52</td>\n",
       "      <td>52</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.2</td>\n",
       "      <td>2.6</td>\n",
       "      <td>1.5</td>\n",
       "      <td>female</td>\n",
       "      <td>...</td>\n",
       "      <td>0.33</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>[]</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0.11</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'color': 'black', 'confidence': 1.0}, {'colo...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>c29e7a06-72de-4b77-bc5d-5568145f10eb</td>\n",
       "      <td>95</td>\n",
       "      <td>238</td>\n",
       "      <td>51</td>\n",
       "      <td>51</td>\n",
       "      <td>0.981</td>\n",
       "      <td>7.2</td>\n",
       "      <td>1.2</td>\n",
       "      <td>2.6</td>\n",
       "      <td>female</td>\n",
       "      <td>...</td>\n",
       "      <td>0.48</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'type': 'glasses', 'confidence': 1.0}]</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0.11</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'color': 'black', 'confidence': 0.98}, {'col...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0192c19c-eb0a-447b-82f1-740f32eb004a</td>\n",
       "      <td>94</td>\n",
       "      <td>540</td>\n",
       "      <td>48</td>\n",
       "      <td>48</td>\n",
       "      <td>1.000</td>\n",
       "      <td>-7.7</td>\n",
       "      <td>5.0</td>\n",
       "      <td>6.9</td>\n",
       "      <td>female</td>\n",
       "      <td>...</td>\n",
       "      <td>0.08</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>[]</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0.10</td>\n",
       "      <td>False</td>\n",
       "      <td>[{'color': 'black', 'confidence': 1.0}, {'colo...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>6 rows × 38 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                 faceId  faceRectangle.top  \\\n",
       "0  1f2bf379-70dd-41be-86c3-a63f2deb7c7f                118   \n",
       "1  f659ea05-a658-497d-9b2a-eb89e74d5403                117   \n",
       "2  5e17a0f5-0a18-4a83-821a-31dd3fd014cd                 41   \n",
       "3  c9b6de20-4b5c-4a87-88ce-482b2049a45c                 69   \n",
       "4  c29e7a06-72de-4b77-bc5d-5568145f10eb                 95   \n",
       "5  0192c19c-eb0a-447b-82f1-740f32eb004a                 94   \n",
       "\n",
       "   faceRectangle.left  faceRectangle.width  faceRectangle.height  \\\n",
       "0                 144                   88                    88   \n",
       "1                 376                   64                    64   \n",
       "2                 676                   52                    52   \n",
       "3                 445                   52                    52   \n",
       "4                 238                   51                    51   \n",
       "5                 540                   48                    48   \n",
       "\n",
       "   faceAttributes.smile  faceAttributes.headPose.pitch  \\\n",
       "0                 0.813                           -3.4   \n",
       "1                 0.456                           -1.1   \n",
       "2                 1.000                            3.0   \n",
       "3                 1.000                            0.2   \n",
       "4                 0.981                            7.2   \n",
       "5                 1.000                           -7.7   \n",
       "\n",
       "   faceAttributes.headPose.roll  faceAttributes.headPose.yaw  \\\n",
       "0                           1.4                          9.4   \n",
       "1                          -0.2                          6.6   \n",
       "2                          -1.3                         -0.6   \n",
       "3                           2.6                          1.5   \n",
       "4                           1.2                          2.6   \n",
       "5                           5.0                          6.9   \n",
       "\n",
       "  faceAttributes.gender  ...  faceAttributes.noise.value  \\\n",
       "0                  male  ...                        0.01   \n",
       "1                female  ...                        0.01   \n",
       "2                  male  ...                        0.07   \n",
       "3                female  ...                        0.33   \n",
       "4                female  ...                        0.48   \n",
       "5                female  ...                        0.08   \n",
       "\n",
       "   faceAttributes.makeup.eyeMakeup  faceAttributes.makeup.lipMakeup  \\\n",
       "0                            False                            False   \n",
       "1                            False                             True   \n",
       "2                            False                            False   \n",
       "3                            False                            False   \n",
       "4                            False                            False   \n",
       "5                            False                            False   \n",
       "\n",
       "                 faceAttributes.accessories  \\\n",
       "0                                        []   \n",
       "1                                        []   \n",
       "2  [{'type': 'glasses', 'confidence': 1.0}]   \n",
       "3                                        []   \n",
       "4  [{'type': 'glasses', 'confidence': 1.0}]   \n",
       "5                                        []   \n",
       "\n",
       "  faceAttributes.occlusion.foreheadOccluded  \\\n",
       "0                                     False   \n",
       "1                                     False   \n",
       "2                                     False   \n",
       "3                                     False   \n",
       "4                                     False   \n",
       "5                                     False   \n",
       "\n",
       "   faceAttributes.occlusion.eyeOccluded  \\\n",
       "0                                 False   \n",
       "1                                 False   \n",
       "2                                 False   \n",
       "3                                 False   \n",
       "4                                 False   \n",
       "5                                 False   \n",
       "\n",
       "   faceAttributes.occlusion.mouthOccluded  faceAttributes.hair.bald  \\\n",
       "0                                   False                      0.18   \n",
       "1                                   False                      0.08   \n",
       "2                                   False                      0.06   \n",
       "3                                   False                      0.11   \n",
       "4                                   False                      0.11   \n",
       "5                                   False                      0.10   \n",
       "\n",
       "   faceAttributes.hair.invisible  \\\n",
       "0                          False   \n",
       "1                          False   \n",
       "2                          False   \n",
       "3                          False   \n",
       "4                          False   \n",
       "5                          False   \n",
       "\n",
       "                       faceAttributes.hair.hairColor  \n",
       "0  [{'color': 'brown', 'confidence': 0.95}, {'col...  \n",
       "1  [{'color': 'black', 'confidence': 1.0}, {'colo...  \n",
       "2  [{'color': 'black', 'confidence': 0.98}, {'col...  \n",
       "3  [{'color': 'black', 'confidence': 1.0}, {'colo...  \n",
       "4  [{'color': 'black', 'confidence': 0.98}, {'col...  \n",
       "5  [{'color': 'black', 'confidence': 1.0}, {'colo...  \n",
       "\n",
       "[6 rows x 38 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# A-3\n",
    "import pandas as pd\n",
    "df_face = pd.json_normalize(results)\n",
    "df_face"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A-4 数据取值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['1f2bf379-70dd-41be-86c3-a63f2deb7c7f',\n",
       " 'f659ea05-a658-497d-9b2a-eb89e74d5403',\n",
       " '5e17a0f5-0a18-4a83-821a-31dd3fd014cd',\n",
       " 'c9b6de20-4b5c-4a87-88ce-482b2049a45c',\n",
       " 'c29e7a06-72de-4b77-bc5d-5568145f10eb',\n",
       " '0192c19c-eb0a-447b-82f1-740f32eb004a']"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "faceID = df_face['faceId'].values.tolist()\n",
    "faceID "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['faceId', 'faceRectangle.top', 'faceRectangle.left',\n",
       "       'faceRectangle.width', 'faceRectangle.height', 'faceAttributes.smile',\n",
       "       'faceAttributes.headPose.pitch', 'faceAttributes.headPose.roll',\n",
       "       'faceAttributes.headPose.yaw', 'faceAttributes.gender',\n",
       "       'faceAttributes.age', 'faceAttributes.facialHair.moustache',\n",
       "       'faceAttributes.facialHair.beard',\n",
       "       'faceAttributes.facialHair.sideburns', 'faceAttributes.glasses',\n",
       "       'faceAttributes.emotion.anger', 'faceAttributes.emotion.contempt',\n",
       "       'faceAttributes.emotion.disgust', 'faceAttributes.emotion.fear',\n",
       "       'faceAttributes.emotion.happiness', 'faceAttributes.emotion.neutral',\n",
       "       'faceAttributes.emotion.sadness', 'faceAttributes.emotion.surprise',\n",
       "       'faceAttributes.blur.blurLevel', 'faceAttributes.blur.value',\n",
       "       'faceAttributes.exposure.exposureLevel',\n",
       "       'faceAttributes.exposure.value', 'faceAttributes.noise.noiseLevel',\n",
       "       'faceAttributes.noise.value', 'faceAttributes.makeup.eyeMakeup',\n",
       "       'faceAttributes.makeup.lipMakeup', 'faceAttributes.accessories',\n",
       "       'faceAttributes.occlusion.foreheadOccluded',\n",
       "       'faceAttributes.occlusion.eyeOccluded',\n",
       "       'faceAttributes.occlusion.mouthOccluded', 'faceAttributes.hair.bald',\n",
       "       'faceAttributes.hair.invisible', 'faceAttributes.hair.hairColor'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 检查属性/特征值\n",
    "df_face.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>faceId</th>\n",
       "      <th>faceAttributes.glasses</th>\n",
       "      <th>faceAttributes.emotion.neutral</th>\n",
       "      <th>faceAttributes.age</th>\n",
       "      <th>faceAttributes.gender</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1f2bf379-70dd-41be-86c3-a63f2deb7c7f</td>\n",
       "      <td>NoGlasses</td>\n",
       "      <td>0.184</td>\n",
       "      <td>19.0</td>\n",
       "      <td>male</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>f659ea05-a658-497d-9b2a-eb89e74d5403</td>\n",
       "      <td>NoGlasses</td>\n",
       "      <td>0.542</td>\n",
       "      <td>22.0</td>\n",
       "      <td>female</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5e17a0f5-0a18-4a83-821a-31dd3fd014cd</td>\n",
       "      <td>ReadingGlasses</td>\n",
       "      <td>0.000</td>\n",
       "      <td>25.0</td>\n",
       "      <td>male</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>c9b6de20-4b5c-4a87-88ce-482b2049a45c</td>\n",
       "      <td>NoGlasses</td>\n",
       "      <td>0.000</td>\n",
       "      <td>23.0</td>\n",
       "      <td>female</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>c29e7a06-72de-4b77-bc5d-5568145f10eb</td>\n",
       "      <td>ReadingGlasses</td>\n",
       "      <td>0.019</td>\n",
       "      <td>18.0</td>\n",
       "      <td>female</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0192c19c-eb0a-447b-82f1-740f32eb004a</td>\n",
       "      <td>NoGlasses</td>\n",
       "      <td>0.000</td>\n",
       "      <td>19.0</td>\n",
       "      <td>female</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                 faceId faceAttributes.glasses  \\\n",
       "0  1f2bf379-70dd-41be-86c3-a63f2deb7c7f              NoGlasses   \n",
       "1  f659ea05-a658-497d-9b2a-eb89e74d5403              NoGlasses   \n",
       "2  5e17a0f5-0a18-4a83-821a-31dd3fd014cd         ReadingGlasses   \n",
       "3  c9b6de20-4b5c-4a87-88ce-482b2049a45c              NoGlasses   \n",
       "4  c29e7a06-72de-4b77-bc5d-5568145f10eb         ReadingGlasses   \n",
       "5  0192c19c-eb0a-447b-82f1-740f32eb004a              NoGlasses   \n",
       "\n",
       "   faceAttributes.emotion.neutral  faceAttributes.age faceAttributes.gender  \n",
       "0                           0.184                19.0                  male  \n",
       "1                           0.542                22.0                female  \n",
       "2                           0.000                25.0                  male  \n",
       "3                           0.000                23.0                female  \n",
       "4                           0.019                18.0                female  \n",
       "5                           0.000                19.0                female  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 可观察其中几组数据\n",
    "df_face[['faceId','faceAttributes.glasses','faceAttributes.emotion.neutral','faceAttributes.age','faceAttributes.gender']]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Azure 认知服务-人脸演示"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 试一试：人脸验证(难)\n",
    "\n",
    "人脸相似度？有没有试下？\n",
    "\n",
    ">* API人脸文档中最重要的组成部分：\n",
    " >>* Request URL？\n",
    " >>* Http Method？\n",
    " >>* 参数？\n",
    "\n",
    "----\n",
    ">* 不同的人脸对比数据\n",
    "  >>* 人脸验证关键数据？\n",
    "  >>* 根据哪些数据证明是同一个人？\n",
    "    \n",
    "----\n",
    ">* 具体步骤：\n",
    "  >>* 1、Create 请求成功200 返回空字符串\n",
    "  >>* 2、Add face 请求成功200 返回persistedFaceId\n",
    "  >>* 3、Detect 准备 被检测人 人脸的id\n",
    "  >>* 4、Find similars 返回相似置信度\n",
    "  >>* 附加：get查看facelists\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "https://api-ggl.cognitiveservices.azure.com/face/v1.0/facelists/gaogaolo01 \n",
      " https://api-ggl.cognitiveservices.azure.com/face/v1.0/facelists/gaogaolo01 \n",
      " https://api-ggl.cognitiveservices.azure.com/face/v1.0/facelists/gaogaolo01\n"
     ]
    }
   ],
   "source": [
    "# 字符串拼接练习\n",
    "faceListId = \"gaogaolo01\"\n",
    "# 1\n",
    "url_01 = \"https://api-ggl.cognitiveservices.azure.com/face/v1.0/facelists/\" + faceListId # string 拼接\n",
    "# 2\n",
    "url_02 = \"https://api-ggl.cognitiveservices.azure.com/face/v1.0/facelists/%s\" %(faceListId)\n",
    "# 3 \n",
    "url_03 = \"https://api-ggl.cognitiveservices.azure.com/face/v1.0/facelists/{}\".format(faceListId)\n",
    "print(url_01,'\\n',url_02,'\\n',url_03)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### create facelist"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "# 1、create  list列表\n",
    "# faceListId\n",
    "faceListId = \"gaogaolo06\" # 学生填写设置人脸列表ID\n",
    "create_facelists_url = 'https://api-ggl.cognitiveservices.azure.com/face/v1.0/facelists/{}'# 学生填写 ☆ 注意此条url修改\n",
    "subscription_key = 'ec97bd9dae3d48c491539654a4bde75f'\n",
    "assert subscription_key\n",
    "\n",
    "headers = {\n",
    "    # Request headers\n",
    "    'Content-Type': 'application/json',\n",
    "    'Ocp-Apim-Subscription-Key': subscription_key,\n",
    "}\n",
    "data = {\n",
    "    \"name\": \"gaogao\",\n",
    "    \"userData\": \"表情包\",\n",
    "    \"recognitionModel\": \"recognition_01\",\n",
    "    \n",
    "}\n",
    "\n",
    "r_create = requests.put(create_facelists_url.format(faceListId),headers=headers,json=data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b''"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r_create.content"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### get facelist"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 检查你的facelist的信息\n",
    "get_facelist_url = 'https://api-ggl.cognitiveservices.azure.com/face/v1.0/facelists/{}'# 学生填写\n",
    "r_get_facelist = requests.get(get_facelist_url.format(faceListId),headers=headers)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'persistedFaces': [],\n",
       " 'faceListId': 'gaogaolo06',\n",
       " 'name': 'gaogao',\n",
       " 'userData': '表情包'}"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r_get_facelist.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Add face 请求成功200 返回persistedFaceId\n",
    "> 我们通过上面的步骤建好了一个脸的列表，接下来我们要给这个列表添加脸了！把我们想要对比的脸存进列表吧\n",
    "- [添加人脸进列表api文档](https://docs.microsoft.com/zh-cn/rest/api/cognitiveservices/face/facelist/addfacefromurl)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "#先加一张脸试试\n",
    "# 2、Add face\n",
    "add_face_url = \"https://api-ggl.cognitiveservices.azure.com/face/v1.0/facelists/{}/persistedFaces\"\n",
    "\n",
    "assert subscription_key\n",
    "headers = {\n",
    "    # Request headers\n",
    "    'Content-Type': 'application/json',\n",
    "    'Ocp-Apim-Subscription-Key': subscription_key,\n",
    "}\n",
    "img_url = \"http://m.qpic.cn/psb?/V140Qfy60MFs14/LLGdjUvkuPxRnB79l.VQ*Iz3wZxX3U73lhSKTslGh2E!/b/dPIAAAAAAAAA&rf=viewer_311\"\n",
    "\n",
    "params_add_face={\n",
    "    \"userData\":\"高高小时候\"\n",
    "}\n",
    "\n",
    "r_add_face = requests.post(add_face_url.format(faceListId),headers=headers,params=params_add_face,json={\"url\":img_url})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "200"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r_add_face.status_code"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'persistedFaceId': '0b354849-d931-4377-8517-b5deedb90e3c'}"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 检查你的facelist的信息\n",
    "r_add_face.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 扩展内容，封装成函数方便多次使用 *\n",
    "> 我们要添加多张脸，但是为了减少代码量，我们可以把代码封装成函数，避免每次都要写一大堆代码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 封装成函数方便添加图片/函数——可以重复使用相同的功能\n",
    "def AddFace(img_url=str,userData=str):\n",
    "    add_face_url =\"https://api-ggl.cognitiveservices.azure.com/face/v1.0/facelists/{}/persistedFaces\"\n",
    "    assert subscription_key\n",
    "    headers = {\n",
    "        # Request headers\n",
    "        'Content-Type': 'application/json',\n",
    "        'Ocp-Apim-Subscription-Key': subscription_key,\n",
    "    }\n",
    "    img_url = img_url\n",
    "\n",
    "    params_add_face={\n",
    "        \"userData\":userData\n",
    "    }\n",
    "    r_add_face = requests.post(add_face_url.format(faceListId),headers=headers,params=params_add_face,json={\"url\":img_url})\n",
    "    return r_add_face.status_code#返回出状态码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "200"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "AddFace(\"http://m.qpic.cn/psb?/V140Qfy60MFs14/mx4McaKO4FQSWUycW324ahTUjMQyj7YXKqGxT9t43Sk!/b/dPMAAAAAAAAA&rf=viewer_311\",\"小高高洗澡\")\n",
    "AddFace(\"http://m.qpic.cn/psb?/V140Qfy60MFs14/ycOfzUATQBmFjPorYNkKkxJV.OytiRjpYLtjjPL43o4!/b/dPMAAAAAAAAA&rf=viewer_311\",\"小高高吃蛋糕\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'persistedFaces': [{'persistedFaceId': '0b354849-d931-4377-8517-b5deedb90e3c',\n",
       "   'userData': '高高小时候'},\n",
       "  {'persistedFaceId': 'a6903603-24bb-4e58-a6eb-0cd4da3c5010',\n",
       "   'userData': '小高高洗澡'},\n",
       "  {'persistedFaceId': 'cd5ed0e4-15b3-4dea-9a46-1acff7ee1634',\n",
       "   'userData': '小高高吃蛋糕'}],\n",
       " 'faceListId': 'gaogaolo06',\n",
       " 'name': 'gaogao',\n",
       " 'userData': '表情包'}"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 检查你的facelist的信息\n",
    "get_facelist_url =\"https://api-ggl.cognitiveservices.azure.com/face/v1.0/facelists/{}\"\n",
    "r_get_facelist = requests.get(get_facelist_url.format(faceListId),headers=headers,params=data)\n",
    "r_get_facelist.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 键/值\n",
    "for i in faceId:\"gaogaolo06\"\n",
    "\n",
    "#     print(i)\n",
    "if i['userData'] == \"小高高洗澡\":\n",
    "    faceId_02 = i[\"persistedFaceId\"]\n",
    "    faceId_02"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'persistedFaceId': '0b354849-d931-4377-8517-b5deedb90e3c',\n",
       "  'userData': '高高小时候'},\n",
       " {'persistedFaceId': 'a6903603-24bb-4e58-a6eb-0cd4da3c5010',\n",
       "  'userData': '小高高洗澡'},\n",
       " {'persistedFaceId': 'cd5ed0e4-15b3-4dea-9a46-1acff7ee1634',\n",
       "  'userData': '小高高吃蛋糕'}]"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "faceId =  r_get_facelist.json()['persistedFaces']\n",
    "faceId"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cd5ed0e4-15b3-4dea-9a46-1acff7ee1634\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'cd5ed0e4-15b3-4dea-9a46-1acff7ee1634'"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "for item in faceId:\"gaogaolo03\"\n",
    "#     print(item)\n",
    "if item['userData'] == '小高高吃蛋糕':\n",
    "        print(item['persistedFaceId'])\n",
    "        delate_face = item['persistedFaceId']\n",
    "delate_face"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### delate face"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'r_add_face' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-23-603b43512530>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      5\u001b[0m \u001b[1;32massert\u001b[0m \u001b[0msubscription_key\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      6\u001b[0m \u001b[1;31m# 例如：删除黄志毅： {'persistedFaceId': '69103b48-b6c4-4f58-8ac1-4c8b84e56bc1','userData': '黄智毅'},\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 7\u001b[1;33m \u001b[0mpersistedFaceId\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mr_add_face\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjson\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      8\u001b[0m {\n\u001b[0;32m      9\u001b[0m     \u001b[1;34m\"persistedFaceId\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;34m'055489e5-c21e-4b29-bf14-97299ed7d504'\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'r_add_face' is not defined"
     ]
    }
   ],
   "source": [
    "# Detect face 删除列表内人脸id\n",
    "faceListId = \"gaogaolo03\"\n",
    "delete_face_url = \"https://api-ggl.cognitiveservices.azure.com/face/v1.0/facelists/sample_face_list/persistedfaces/62004fa7-1ac0-478e-9d5a-b38f9e7fbc68\"\n",
    "subscription_key = 'ec97bd9dae3d48c491539654a4bde75f'\n",
    "assert subscription_key\n",
    "# 例如：删除黄志毅： {'persistedFaceId': '69103b48-b6c4-4f58-8ac1-4c8b84e56bc1','userData': '黄智毅'},\n",
    "persistedFaceId = r_add_face.json()\n",
    "{\n",
    "    \"persistedFaceId\":'055489e5-c21e-4b29-bf14-97299ed7d504'\n",
    "        }\n",
    "\n",
    "\n",
    "# 直接取上面获得的ID{'persistedFaceId': 'f18450d3-60d2-45f3-a69e-783574dc3ce8'} \n",
    "\n",
    "headers = {\n",
    "    # Request headers\n",
    "    'Content-Type': 'application/json',\n",
    "    'Ocp-Apim-Subscription-Key': subscription_key,\n",
    "}\n",
    "# 注意requests请求为delete\n",
    "r_delete_face = requests.delete(delete_face_url.format(faceListId,persistedFaceId),headers=headers)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "r_delete_face"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 检查你的facelist的信息\n",
    "get_facelist_url =\n",
    "r_get_facelist = requests.get(get_facelist_url,headers=headers)\n",
    "r_get_facelist.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Find similars 返回相似置信度\n",
    "- [监测人脸相似度api文档](https://docs.microsoft.com/zh-cn/rest/api/cognitiveservices/face/face/findsimilar)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'[{\"faceId\": \"1a0e9268-4850-46f4-b524-18a9edf98094\", \"faceRectangle\": {\"top\": 477, \"left\": 270, \"width\": 243, \"height\": 243}}]'"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Detect 检测人脸的id\n",
    "# replace <My Endpoint String> with the string from your endpoint URL\n",
    "face_api_url = 'https://api-ggl.cognitiveservices.azure.com/face/v1.0/detect'\n",
    "\n",
    "# 请求正文\n",
    "image_url = 'http://m.qpic.cn/psb?/V140Qfy60MFs14/LLGdjUvkuPxRnB79l.VQ*Iz3wZxX3U73lhSKTslGh2E!/b/dPIAAAAAAAAA&rf=viewer_311'\n",
    "subscription_key = 'ec97bd9dae3d48c491539654a4bde75f'\n",
    "headers = {'Ocp-Apim-Subscription-Key': subscription_key}\n",
    "\n",
    "# 请求参数\n",
    "params = {\n",
    "    'returnFaceId': 'true',\n",
    "    'returnFaceLandmarks': 'false',\n",
    "    # 选择model\n",
    "    'recognitionModel':'recognition_01',#此参数需与facelist参数一致\n",
    "    'detectionModel':'detection_01',\n",
    "    # 可选参数,请仔细阅读API文档\n",
    "    'returnFaceAttributes': '',\n",
    "}\n",
    "\n",
    "response = requests.post(face_api_url, params=params,\n",
    "                         headers=headers, json={\"url\": image_url})\n",
    "# json.dumps 将json--->字符串\n",
    "json.dumps(response.json())\n",
    "#response.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "findsimilars_url = \"https://api-ggl.cognitiveservices.azure.com/face/v1.0/findsimilars\"\n",
    "\n",
    "# 请求正文 faceId需要先检测一张照片获取\n",
    "data_findsimilars = {\n",
    "    \"faceId\":\"1a0e9268-4850-46f4-b524-18a9edf98094\",#取上方的faceID\n",
    "    \"faceListId\": \"gaogao04\",\n",
    "#     \"faceIds\":faceId_02,\n",
    "    \"maxNumOfCandidatesReturned\": 10,\n",
    "    \"mode\": \"matchFace\"#matchPerson #一种为验证模式，一种为相似值模式\n",
    "    }\n",
    "\n",
    "r_findsimilars = requests.post(findsimilars_url,headers=headers,json=data_findsimilars)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "400"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r_findsimilars.status_code"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'error': {'code': 'FaceListNotFound', 'message': 'Face list is not found.'}}"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r_findsimilars.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'r_get_facelist' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-20-8f37fcdf4ddd>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mpandas\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      2\u001b[0m \u001b[1;31m#facelist里面的数据\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mfaceListId_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjson_normalize\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mr_get_facelist\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjson\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"persistedFaces\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;31m# 升级pandas才能运行\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      4\u001b[0m \u001b[0mfaceListId_df\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'r_get_facelist' is not defined"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "#facelist里面的数据\n",
    "faceListId_df = pd.json_normalize(r_get_facelist.json()[\"persistedFaces\"])# 升级pandas才能运行\n",
    "faceListId_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>persistedFaceId</th>\n",
       "      <th>confidence</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4278a690-5f78-40d7-abe5-88eab5d5494f</td>\n",
       "      <td>0.29269</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>8b1c2538-05cc-4636-8460-cfa8059d5c72</td>\n",
       "      <td>0.20908</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5bfad450-0274-40b5-ba9f-0e4a0af9763b</td>\n",
       "      <td>0.17849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>c0ee4410-bca0-4a3f-acb5-74c8eb72f0a1</td>\n",
       "      <td>0.16209</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>e61d920f-f131-464a-9a43-a82babf20358</td>\n",
       "      <td>0.15023</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6a663a8e-725c-4c7d-bd72-5520c4a2e93e</td>\n",
       "      <td>0.10100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>8a559e64-a44b-4a4b-84dc-e14da959da3a</td>\n",
       "      <td>0.10034</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0523267b-6750-4d1e-987d-674e0ecb0821</td>\n",
       "      <td>0.09990</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>5081698a-efe4-4be9-822c-cb58f2cc4803</td>\n",
       "      <td>0.09955</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>d0c25191-8224-410e-9eed-df3457e0a77f</td>\n",
       "      <td>0.09503</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                        persistedFaceId  confidence\n",
       "0  4278a690-5f78-40d7-abe5-88eab5d5494f     0.29269\n",
       "1  8b1c2538-05cc-4636-8460-cfa8059d5c72     0.20908\n",
       "2  5bfad450-0274-40b5-ba9f-0e4a0af9763b     0.17849\n",
       "3  c0ee4410-bca0-4a3f-acb5-74c8eb72f0a1     0.16209\n",
       "4  e61d920f-f131-464a-9a43-a82babf20358     0.15023\n",
       "5  6a663a8e-725c-4c7d-bd72-5520c4a2e93e     0.10100\n",
       "6  8a559e64-a44b-4a4b-84dc-e14da959da3a     0.10034\n",
       "7  0523267b-6750-4d1e-987d-674e0ecb0821     0.09990\n",
       "8  5081698a-efe4-4be9-822c-cb58f2cc4803     0.09955\n",
       "9  d0c25191-8224-410e-9eed-df3457e0a77f     0.09503"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 返回相似度的数据\n",
    "find_df = pd.json_normalize(r_findsimilars.json())# 升级pandas才能运行\n",
    "find_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>persistedFaceId</th>\n",
       "      <th>userData</th>\n",
       "      <th>confidence</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4278a690-5f78-40d7-abe5-88eab5d5494f</td>\n",
       "      <td>徐旖芊</td>\n",
       "      <td>0.29269</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>8b1c2538-05cc-4636-8460-cfa8059d5c72</td>\n",
       "      <td>李婷</td>\n",
       "      <td>0.20908</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>5bfad450-0274-40b5-ba9f-0e4a0af9763b</td>\n",
       "      <td>张铭睿</td>\n",
       "      <td>0.17849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>c0ee4410-bca0-4a3f-acb5-74c8eb72f0a1</td>\n",
       "      <td>陈嘉仪</td>\n",
       "      <td>0.16209</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>e61d920f-f131-464a-9a43-a82babf20358</td>\n",
       "      <td>刘心如</td>\n",
       "      <td>0.15023</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>6a663a8e-725c-4c7d-bd72-5520c4a2e93e</td>\n",
       "      <td>洪可凡</td>\n",
       "      <td>0.10100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>8a559e64-a44b-4a4b-84dc-e14da959da3a</td>\n",
       "      <td>林嘉茵</td>\n",
       "      <td>0.10034</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0523267b-6750-4d1e-987d-674e0ecb0821</td>\n",
       "      <td>张梓乐</td>\n",
       "      <td>0.09990</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5081698a-efe4-4be9-822c-cb58f2cc4803</td>\n",
       "      <td>丘某峰</td>\n",
       "      <td>0.09955</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>d0c25191-8224-410e-9eed-df3457e0a77f</td>\n",
       "      <td>黄智毅</td>\n",
       "      <td>0.09503</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                        persistedFaceId userData  confidence\n",
       "3  4278a690-5f78-40d7-abe5-88eab5d5494f      徐旖芊     0.29269\n",
       "5  8b1c2538-05cc-4636-8460-cfa8059d5c72       李婷     0.20908\n",
       "7  5bfad450-0274-40b5-ba9f-0e4a0af9763b      张铭睿     0.17849\n",
       "2  c0ee4410-bca0-4a3f-acb5-74c8eb72f0a1      陈嘉仪     0.16209\n",
       "4  e61d920f-f131-464a-9a43-a82babf20358      刘心如     0.15023\n",
       "8  6a663a8e-725c-4c7d-bd72-5520c4a2e93e      洪可凡     0.10100\n",
       "1  8a559e64-a44b-4a4b-84dc-e14da959da3a      林嘉茵     0.10034\n",
       "9  0523267b-6750-4d1e-987d-674e0ecb0821      张梓乐     0.09990\n",
       "0  5081698a-efe4-4be9-822c-cb58f2cc4803      丘某峰     0.09955\n",
       "6  d0c25191-8224-410e-9eed-df3457e0a77f      黄智毅     0.09503"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.merge(faceListId_df, find_df,how='inner', on='persistedFaceId').sort_values(by=\"confidence\",ascending = False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 设计人脸识别门禁/打卡/签到 小程序"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Face++ FaceSets 实践\n",
    "\n",
    "\n",
    ">* 1. FaceSet Create\n",
    ">* 2. FaceSet GetDetail\n",
    ">* 3. FaceSet AddFace\n",
    ">* 4. FaceSet RemoveFace\n",
    ">* 5. FaceSet Update\n",
    ">* 6. Compare Face"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 准备工作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "api_secret = \"E5WAB6jsZyzoGyFVP9uqMvxUtFsrGebC\"\n",
    "api_key = \"QmBa2dgS6uSRZB7wmIpn2TOkqqPc5v3L\"  # Replace with a valid Subscription Key here."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## FaceSet Create（创建人脸集合）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 1. FaceSet Create\n",
    "import requests,json\n",
    "\n",
    "display_name = \"高高咯脸集合\"\n",
    "outer_id = \"00001\"\n",
    "user_data = \"8人，5男，4女\"\n",
    "\n",
    "CreateFace_Url = \"https://api-cn.faceplusplus.com/facepp/v3/faceset/getfacesets\"\n",
    "payload = {\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'display_name':display_name,\n",
    "    'outer_id':outer_id,\n",
    "    'user_data':user_data\n",
    "}\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(CreateFace_Url, params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'time_used': 68,\n",
       " 'facesets': [{'faceset_token': '22f49fd4281c0fe7c86008b9e962ade5',\n",
       "   'outer_id': '00001',\n",
       "   'display_name': '高高咯脸集合',\n",
       "   'tags': ''}],\n",
       " 'request_id': '1603420514,2cd2e0ed-1af4-4f57-8b8b-1f0d515b5bb1'}"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## FaceSet GetDetail（获取人脸集合信息）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "GetDetail_Url = \"https://api-cn.faceplusplus.com/facepp/v3/faceset/getdetail\"\n",
    "\n",
    "payload = {\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'outer_id':outer_id,\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(GetDetail_Url,params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'faceset_token': '22f49fd4281c0fe7c86008b9e962ade5',\n",
       " 'tags': '',\n",
       " 'time_used': 91,\n",
       " 'user_data': '8人，5男，4女',\n",
       " 'display_name': '高高咯脸集合',\n",
       " 'face_tokens': [],\n",
       " 'face_count': 0,\n",
       " 'request_id': '1603420522,a791e9d5-6507-45d5-9194-752f56d0dd44',\n",
       " 'outer_id': '00001'}"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## FaceSet AddFace（增加人脸信息）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "AddFace_url = \"https://api-cn.faceplusplus.com/facepp/v3/faceset/addface\"\n",
    "\n",
    "payload = {\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'faceset_token':'37071d95016c1b2d81591a6f0c1681f2',\n",
    "    'face_tokens':'b0407b9e803ebd39d511cd7956fd5bf5',\n",
    "}\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(AddFace_url,params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'time_used': 64,\n",
       " 'error_message': 'INVALID_FACESET_TOKEN',\n",
       " 'request_id': '1603420530,75c23071-f9b5-4793-aa81-ac60201f2ce5'}"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## FaceSet RemoveFace（移除人脸信息）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "RemoveFace_url = \"https://api-cn.faceplusplus.com/facepp/v3/faceset/getfacesets\"\n",
    "\n",
    "payload = {\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'faceset_token':'37071d95016c1b2d81591a6f0c1681f2',\n",
    "    'face_tokens':'b0407b9e803ebd39d511cd7956fd5bf5',\n",
    "}\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(RemoveFace_url,params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'time_used': 60,\n",
       " 'facesets': [{'faceset_token': '22f49fd4281c0fe7c86008b9e962ade5',\n",
       "   'outer_id': '00001',\n",
       "   'display_name': '高高咯脸集合',\n",
       "   'tags': ''}],\n",
       " 'request_id': '1603419126,723704da-de3a-4381-8124-8121c2e6b3d4'}"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## FaceSet Update（更新人脸集合信息）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "Update_url = \"https://api-cn.faceplusplus.com/facepp/v3/faceset/update\"\n",
    "\n",
    "\n",
    "payload = {\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'faceset_token':'37071d95016c1b2d81591a6f0c1681f2',\n",
    "    'user_data':\"8，5男生，4女生\",\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(Update_url,params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'time_used': 57,\n",
       " 'error_message': 'INVALID_FACESET_TOKEN',\n",
       " 'request_id': '1603420572,14d6d85c-fcfb-4aee-b905-576b1bc2015d'}"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Compare Face（对比人脸相似度）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "xiaogao01 = \"http://m.qpic.cn/psb?/V140Qfy60MFs14/LLGdjUvkuPxRnB79l.VQ*Iz3wZxX3U73lhSKTslGh2E!/b/dPIAAAAAAAAA&rf=viewer_311\"\n",
    "xiaogao02 = \"http://m.qpic.cn/psb?/V140Qfy60MFs14/mx4McaKO4FQSWUycW324ahTUjMQyj7YXKqGxT9t43Sk!/b/dPMAAAAAAAAA&rf=viewer_311\"\n",
    "xiaogao03 = \"http://m.qpic.cn/psb?/V140Qfy60MFs14/ycOfzUATQBmFjPorYNkKkxJV.OytiRjpYLtjjPL43o4!/b/dPMAAAAAAAAA&rf=viewer_311\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 方案1:直接对比"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "Compare_url = \"https://api-cn.faceplusplus.com/facepp/v3/compare\"\n",
    "\n",
    "payload ={\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'image_url1':xiaogao01,\n",
    "    'image_url2':xiaogao02\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(Compare_url,params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'faces1': [{'face_rectangle': {'width': 249,\n",
       "    'top': 478,\n",
       "    'left': 286,\n",
       "    'height': 249},\n",
       "   'face_token': '5fca71d2702b14ee46242842f96588fb'}],\n",
       " 'faces2': [{'face_rectangle': {'width': 329,\n",
       "    'top': 377,\n",
       "    'left': 320,\n",
       "    'height': 329},\n",
       "   'face_token': '53b5310c54115bbed4e3f2d058daee6d'}],\n",
       " 'time_used': 1299,\n",
       " 'thresholds': {'1e-3': 62.327, '1e-5': 73.975, '1e-4': 69.101},\n",
       " 'confidence': 91.134,\n",
       " 'image_id2': '3mjgxRaZbKgMNnMrfIk5kw==',\n",
       " 'image_id1': 'M2a4OEjPcX0xcdxGk4XomQ==',\n",
       " 'request_id': '1603208888,2a0d2f03-e401-47f5-9b51-19f5bb7383fa'}"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 方案2:与人脸集合进行对比"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 面部检测(获取face_token)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "Detect_url = 'https://api-cn.faceplusplus.com/facepp/v3/detect' \n",
    "img_url = xiaogao01\n",
    "\n",
    "payload = {\n",
    "    \"image_url\":img_url,\n",
    "    'api_key': api_key,\n",
    "    'api_secret': api_secret,\n",
    "    'return_attributes':'gender,age,smiling,emotion', \n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = requests.post(Detect_url,params=payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1603209028,0cd99d3d-8185-489a-8041-9e93efd030ef',\n",
       " 'time_used': 1788,\n",
       " 'faces': [{'face_token': 'e429bf001f6d7cdfa5282ddff0cd2e94',\n",
       "   'face_rectangle': {'top': 478, 'left': 286, 'width': 249, 'height': 249},\n",
       "   'attributes': {'gender': {'value': 'Male'},\n",
       "    'age': {'value': 4},\n",
       "    'smile': {'value': 0.08, 'threshold': 50.0},\n",
       "    'emotion': {'anger': 0.003,\n",
       "     'disgust': 0.003,\n",
       "     'fear': 0.047,\n",
       "     'happiness': 0.003,\n",
       "     'neutral': 99.541,\n",
       "     'sadness': 0.003,\n",
       "     'surprise': 0.402}}}],\n",
       " 'image_id': 'M2a4OEjPcX0xcdxGk4XomQ==',\n",
       " 'face_num': 1}"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 加入人脸集合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 人脸识别社会/政治使用思考\n",
    "> 人脸识别的 API比较\n",
    ">> * [Face Off: Confronting Bias in Face Recognition AI](https://www.kairos.com/blog/face-off-confronting-bias-in-face-recognition-ai)\n",
    ">> * [为什么世界现在需要道德的面部识别](https://www.kairos.com/blog/why-the-world-needs-ethical-facial-recognition-now)\n",
    "    * 到2023年，全球人脸识别市场的价值估计接近100亿美元，复合年增长率为16.8％。市场背后的主要增长动力是监视市场的发展以及生物识别技术领域的政府支出。但是，面部识别的使用在其他领域也有很大贡献，例如帮助企业打击消费者欺诈，满足动态法规遵从性以及提供可获利的客户体验。\n",
    "\n",
    "-----\n",
    "> 人脸识别的偏差及API 政治经济学 \n",
    ">> * [对抗：面对面部识别AI中的偏见](https://www.kairos.com/blog/face-off-confronting-bias-in-face-recognition-ai)\n",
    "    * 发生了什么？\n",
    "        * “编码注视”或算法偏差的研究: 浅肤色男性的错误率为0.8％ ?  深色皮肤女性的错误率高达34.7％  ? (Microsoft，IBM和Face ++)\n",
    "    * 用户的反应范围从惊奇和赞美到不悦和冒犯\n",
    "        * 我们承认目前提供的种族分类（黑人，白人，亚裔，西班牙裔，其他则不足以代表丰富多样，发展迅速的文化和种族挂毯\n",
    "    * 该怎么办？\n",
    "        * 改善数据\n",
    "        * 寻求持续的反馈    \n",
    "        \n",
    ">>  * [科技行业没有应对面部识别偏见的计划](https://www.theverge.com/2018/7/26/17616290/facial-recognition-ai-bias-benchmark-test) \n",
    ">>> 公司在做什么？(一些高科技大公司支持基准和法规)     \n",
    ">>> 我们如何解决偏见问题？    \n",
    ">>> 偏差不是唯一的问题\n",
    "\n",
    ">> * [面部识别尚未准备好给执法部门使用](https://techcrunch.com/2018/06/25/facial-recognition-software-is-not-ready-for-use-by-law-enforcement/)\n",
    " "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 计算机视觉\n",
    "\n",
    "* 学习并完成所有Azure computer version 的API调用\n",
    "> * 分析远程图像    \n",
    "> * 分析本地图片    \n",
    "> * 生成缩略图    \n",
    "> * 提取印刷体文本和手写文本    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 分析远程图像"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\"categories\": [{\"name\": \"people_baby\", \"score\": 0.671875, \"detail\": {\"celebrities\": []}}], \"color\": {\"dominantColorForeground\": \"Grey\", \"dominantColorBackground\": \"Grey\", \"dominantColors\": [\"Grey\", \"White\"], \"accentColor\": \"4A6376\", \"isBwImg\": false, \"isBWImg\": false}, \"description\": {\"tags\": [\"person\", \"sitting\", \"indoor\", \"boy\", \"child\", \"young\", \"window\", \"baby\", \"table\", \"toddler\", \"little\", \"small\", \"striped\", \"front\", \"laptop\", \"holding\", \"bed\", \"computer\", \"chair\", \"shirt\", \"playing\", \"eating\", \"remote\"], \"captions\": [{\"text\": \"a young boy sitting on a bed\", \"confidence\": 0.6631472477373423}]}, \"requestId\": \"0f7c97b7-1deb-4585-99b2-40403d1f4af9\", \"metadata\": {\"height\": 1440, \"width\": 1080, \"format\": \"Jpeg\"}}\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import requests\n",
    "# If you are using a Jupyter notebook, uncomment the following line.\n",
    "# %matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import json\n",
    "from PIL import Image\n",
    "from io import BytesIO\n",
    "\n",
    "# Add your Computer Vision subscription key and endpoint to your environment variables.\n",
    "# if 'COMPUTER_VISION_SUBSCRIPTION_KEY' in os.environ:\n",
    "#     subscription_key = os.environ['COMPUTER_VISION_SUBSCRIPTION_KEY']\n",
    "# else:\n",
    "#     print(\"\\nSet the COMPUTER_VISION_SUBSCRIPTION_KEY environment variable.\\n**Restart your shell or IDE for changes to take effect.**\")\n",
    "#     sys.exit()\n",
    "\n",
    "endpoint = \"https://gaogaolo.cognitiveservices.azure.com/\"\n",
    "# if 'COMPUTER_VISION_ENDPOINT' in os.environ:\n",
    "#     endpoint = os.environ['COMPUTER_VISION_ENDPOINT']\n",
    "subscription_key = \"055b3560ef704e958d9cc550a8afac51\"\n",
    "\n",
    "# base url\n",
    "analyze_url = endpoint+ \"vision/v2.1/analyze\"\n",
    "\n",
    "# Set image_url to the URL of an image that you want to analyze.\n",
    "image_url = \"http://m.qpic.cn/psb?/V140Qfy60MFs14/LLGdjUvkuPxRnB79l.VQ*Iz3wZxX3U73lhSKTslGh2E!/b/dPIAAAAAAAAA&rf=viewer_311\"\n",
    "\n",
    "headers = {'Ocp-Apim-Subscription-Key': subscription_key}\n",
    "# 参数\n",
    "params = {'visualFeatures': 'Categories,Description,Color'}\n",
    "# 请求主体body\n",
    "data = {'url': image_url}\n",
    "response = requests.post(analyze_url, headers=headers,\n",
    "                         params=params, json=data)\n",
    "response.raise_for_status()\n",
    "\n",
    "# The 'analysis' object contains various fields that describe the image. The most\n",
    "# relevant caption for the image is obtained from the 'description' property.\n",
    "analysis = response.json()\n",
    "print(json.dumps(response.json()))\n",
    "image_caption = analysis[\"description\"][\"captions\"][0][\"text\"].capitalize()\n",
    "\n",
    "# Display the image and overlay it with the caption.\n",
    "image = Image.open(BytesIO(requests.get(image_url).content))\n",
    "plt.imshow(image)\n",
    "plt.axis(\"off\")\n",
    "_ = plt.title(image_caption, size=\"x-large\", y=-0.1)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 分析本地图片"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "ename": "IndentationError",
     "evalue": "unexpected indent (<ipython-input-11-f2a4f9c35815>, line 11)",
     "output_type": "error",
     "traceback": [
      "\u001b[1;36m  File \u001b[1;32m\"<ipython-input-11-f2a4f9c35815>\"\u001b[1;36m, line \u001b[1;32m11\u001b[0m\n\u001b[1;33m    if 'COMPUTER_VISION_SUBSCRIPTION_KEY' in os.environ:\u001b[0m\n\u001b[1;37m    ^\u001b[0m\n\u001b[1;31mIndentationError\u001b[0m\u001b[1;31m:\u001b[0m unexpected indent\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "import sys\n",
    "import requests\n",
    "# If you are using a Jupyter notebook, uncomment the following line.\n",
    "# %matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "from PIL import Image\n",
    "from io import BytesIO\n",
    "\n",
    "# Add your Computer Vision subscription key and endpoint to your environment variables.\n",
    " if 'COMPUTER_VISION_SUBSCRIPTION_KEY' in os.environ:\n",
    "    subscription_key = os.environ['COMPUTER_VISION_SUBSCRIPTION_KEY']\n",
    "else:\n",
    "     print(\"\\nSet the COMPUTER_VISION_SUBSCRIPTION_KEY environment variable.\\n**Restart your shell or IDE for changes to take effect.**\")\n",
    "     sys.exit()\n",
    "\n",
    "if 'COMPUTER_VISION_ENDPOINT' in os.environ:\n",
    "    endpoint = os.environ['COMPUTER_VISION_ENDPOINT']\n",
    "\n",
    "analyze_url = endpoint + \"vision/v2.1/analyze\"\n",
    "\n",
    "# Set image_path to the local path of an image that you want to analyze.\n",
    "image_path = \"C:/Users/92519/Desktop/黑牛/DSC_4065.JPG\"\n",
    "# Read the image into a byte array\n",
    "image_data = open(image_path, \"rb\").read()\n",
    "headers = {'Ocp-Apim-Subscription-Key': \"055b3560ef704e958d9cc550a8afac51\",\n",
    "           'Content-Type': 'application/octet-stream'}\n",
    "params = {'visualFeatures': 'Categories,Description,Color'}\n",
    "response = requests.post(\n",
    "    analyze_url, headers=headers, params=params, data=image_data)\n",
    "response.raise_for_status()\n",
    "\n",
    "# The 'analysis' object contains various fields that describe the image. The most\n",
    "# relevant caption for the image is obtained from the 'description' property.\n",
    "analysis = response.json()\n",
    "print(analysis)\n",
    "image_caption = analysis[\"description\"][\"captions\"][0][\"text\"].capitalize()\n",
    "\n",
    "# Display the image and overlay it with the caption.\n",
    "image = Image.open(BytesIO(image_data))\n",
    "plt.imshow(image)\n",
    "plt.axis(\"off\")\n",
    "_ = plt.title(image_caption, size=\"x-large\", y=-0.1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 生成缩略图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Thumbnail is 100-by-100\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import os\n",
    "import sys\n",
    "import requests\n",
    "# If you are using a Jupyter notebook, uncomment the following line.\n",
    "# %matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "from PIL import Image\n",
    "from io import BytesIO\n",
    "\n",
    "# Add your Computer Vision subscription key and endpoint to your environment variables.\n",
    "# if 'COMPUTER_VISION_SUBSCRIPTION_KEY' in os.environ:\n",
    "#     subscription_key = os.environ['COMPUTER_VISION_SUBSCRIPTION_KEY']\n",
    "# else:\n",
    "#     print(\"\\nSet the COMPUTER_VISION_SUBSCRIPTION_KEY environment variable.\\n**Restart your shell or IDE for changes to take effect.**\")\n",
    "#     sys.exit()\n",
    "\n",
    "# if 'COMPUTER_VISION_ENDPOINT' in os.environ:\n",
    "#     endpoint = os.environ['COMPUTER_VISION_ENDPOINT']\n",
    "\n",
    "thumbnail_url = \"https://gaogaolo.cognitiveservices.azure.com/\" + \"vision/v2.1/generateThumbnail\"\n",
    "\n",
    "# Set image_url to the URL of an image that you want to analyze.\n",
    "image_url = \"http://m.qpic.cn/psb?/V140Qfy60MFs14/mx4McaKO4FQSWUycW324ahTUjMQyj7YXKqGxT9t43Sk!/b/dPMAAAAAAAAA&rf=viewer_311\"\n",
    "\n",
    "headers = {'Ocp-Apim-Subscription-Key': \"055b3560ef704e958d9cc550a8afac51\"}\n",
    "params = {'width': '100', 'height': '100', 'smartCropping': 'true'}\n",
    "data = {'url': image_url}\n",
    "response = requests.post(thumbnail_url, headers=headers,\n",
    "                         params=params, json=data)\n",
    "response.raise_for_status()\n",
    "\n",
    "thumbnail = Image.open(BytesIO(response.content))\n",
    "\n",
    "# Display the thumbnail.\n",
    "plt.imshow(thumbnail)\n",
    "plt.axis(\"off\")\n",
    "\n",
    "# Verify the thumbnail size.\n",
    "print(\"Thumbnail is {0}-by-{1}\".format(*thumbnail.size))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 提取印刷体文本和手写文本 \n",
    "* 假如我们抓取了1000张网页，出了文本信息我们分析以外，还有每个页面的图片的信息，我们可以用提取图片文本的方式，将图片的信息也抓取下来\n",
    "* 我们进抓取了图片，想知道这些图片的内容是什么，也可以用提取文本的方式进行提取\n",
    "* ...."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 学习人脸识别和计算机视觉心得体会\n",
    "\n",
    "> 历程艰辛！    \n",
    "> 不会放弃！    \n",
    "> 终得成果！    \n",
    "> 分享经验吧～"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "243px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
